#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
    // 下面的代码体现进程等待的意义
    // 以及wait函数如何使用
    /* 主要功能就是子进程退出的时候返回一个进程退出码0，但是此时父进程在执行sleep函数
无法回收处于Z状态的子进程，而后wait函数就会回收子进程资源*/
    pid_t id = fork();
    if(id == 0)
    {
        // 子进程
        int cnt = 10;
        while(cnt)
        {
            printf("子进程pid:%d, 父进程pid:%d, cnt:%d\n", getpid(), getppid(), cnt--);
            sleep(1);
        }

        exit(0); // 这个只退出子进程
    }

    // 父进程
    sleep(15);
    pid_t ret = wait (NULL);
    if(id > 0)
    {
        printf("wait success: %d\n", ret);
    }
    
    sleep(5);
    return 0;
}
